From b06fd3396a0c6fa07ddcc67fd89fb57f0145ea94 Mon Sep 17 00:00:00 2001 From: robertlipe Date: Wed, 12 Jun 2013 18:15:58 +0000 Subject: [PATCH] Fix crash on empty navilink route name. Route names can be up to 13 chars. git-svn-id: http://gpsbabel.googlecode.com/svn/trunk@4396 f51c46e8-681c-474f-0cfe-069cfd0219fb --- gpsbabel/navilink.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gpsbabel/navilink.cc b/gpsbabel/navilink.cc index 1c875daca..a2d1bdc6f 100644 --- a/gpsbabel/navilink.cc +++ b/gpsbabel/navilink.cc @@ -742,7 +742,11 @@ serial_write_route_end(const route_head* route) unsigned src; unsigned sr; unsigned char id[1]; + const char *rte_name; + rte_name = route->rte_name; + if (rte_name == NULL) + rte_name = "NO NAME"; if (route_id_ptr > MAX_ROUTE_LENGTH) { fatal(MYNAME ": Route %s too long\n", route->rte_name); } @@ -753,7 +757,8 @@ serial_write_route_end(const route_head* route) le_write16(data + 0, 0x2000); data[2] = 0; data[3] = 0x20; - strncpy((char*)data + 4, route->rte_name, 6); + memset(data + 4, 0, 14); + strncpy((char*)data + 4, rte_name, 13); data[18] = 0; data[19] = 0; le_write32(data + 20, 0); -- 2.30.2